<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 如何将Promise对象变为已失败?
    // 1. 借助官方给定方法 reject()
    // 2. new Promise()中自带错误捕获机制,如果代码在执行过程中出现错误 -> 将会被捕获 -> 将Promise实例变为rejected,并将错误的信息作为Promise对象的数据存储  (注意: 只能捕获同步代码中的错误)

    // finally方法的回调函数不接受任何参数，这意味着没有办法知道，前面的 Promise 状态到底是fulfilled还是rejected。这表明，finally方法里面的操作，应该是与状态无关的，不依赖于 Promise 的执行结果

    // aaaa;  //报错 -> aaaa is not defined -> 后续代码不执行

    var p = new Promise(function (resolve, reject) {
        // reject(1);

        // aaaa; // 报错 -> aaaa is not defined  -> 被捕获

        // setTimeout(function () {
        //     aaaa; // 报错 -> aaaa is not defined   -> 当前代码执行时(new Promise()已经执行完毕 ->不能捕获)

        // }, 2000)

    })

    console.log(p);

    p.then(function () { }, function (err) {
        console.log("rejected", err);
    })




</script>

</html>